// acm风格的测试方法

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Arrays;

public class Main() {
  // 按行读
  public static String line;

  public static String[] parts;

  public static int sum;

  public static void main(String[] args) throws IOException {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
    while ((line = in.readLine()) != null) {
      parts = line.split(" ");
      sum = 0;
      for (String num : parts) {
        sum += Integer.valueOf(num);
      }
      out.println(sum);
    }
    out.flush();
    in.close();
    out.close();
  }
// --------------------------------------

  // 题目给定的行的最大数据量
  public static int MAXN = 201;

  // 题目给定的列的最大数据量
  public static int MAXM = 201;

  // 申请这么大的矩阵空间，一定够用了
  // 静态的空间，不停复用
  public static int[][] mat = new int[MAXN][MAXM];

  // 需要的所有辅助空间也提前生成
  // 静态的空间，不停复用
  public static int[] arr = new int[MAXM];

  // 当前测试数据行的数量是n
  // 当前测试数据列的数量是m
  // 这两个变量可以把代码运行的边界规定下来
  public static int n, m;

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StreamTokenizer in = new StreamTokenizer(br);
    PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
    while (in.nextToken() != StreamTokenizer.TT_EOF) {
      n = (int) in.nval;
      in.nextToken();
      m = (int) in.nval;
      for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
          in.nextToken();
          mat[i][j] = (int) in.nval;
        }
      }
      out.println(maxSumSubmatrix());
    }
    out.flush();
    br.close();
    out.close();
  }

// ------------------------------------------------------------------------

  public static void main(String[] args) throws IOException {
    // 把文件里的内容，load进来，保存在内存里，很高效，很经济，托管的很好
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    // 一个一个读数字
    StreamTokenizer in = new StreamTokenizer(br);
    // 提交答案的时候用的，也是一个内存托管区
    PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
    while (in.nextToken() != StreamTokenizer.TT_EOF) { // 文件没有结束就继续
      // n，二维数组的行
      int n = (int) in.nval;
      in.nextToken();
      // m，二维数组的列
      int m = (int) in.nval;
      // 装数字的矩阵，临时动态生成
      int[][] mat = new int[n][m];
      for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
          in.nextToken();
          mat[i][j] = (int) in.nval;
        }
      }
      out.println(1);
    }
    out.flush();
    br.close();
    out.close();
  }
}